package com.wecan.base.VO;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.wecan.base.enums.IsNotIsStatus;
import com.wecan.base.enums.SexType;
import com.wecan.base.enums.UserStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author liuzhihao
 * @Date 2022.01.20
 * @Version ${version}
 * @Description ${description}
 */
@Schema(title = "用户信息")
@Data
public class UserVO {

    @Schema(title = "用户id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @Schema(title = "用户名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String name;

    @Schema(title = "坑位")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long positionId;

    @Schema(title = "积分")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer integral;

    @Schema(title = "头像")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String avatar;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private IsNotIsStatus isAuthAvatar;

    @Schema(title = "等级")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private BigDecimal level;

    @Schema(title = "性别")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private SexType sex;

    @Schema(title = "生日")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long birthday;

    @Schema(title = "用户状态")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private UserStatus status;

    @Schema(title = "登录token")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String token;

    @Schema(title = "权限列表")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private List<Integer> marks;
}
